/*
 * @Description: 
 * @Author: HKH
 * @Date: 2024-10-09 17:30:51
 * @LastEditors: HKH
 * @LastEditTime: 2024-10-09 17:33:43
 */

public class Circle<T, E> {
  private T x;
  private T y;
  private E r;

  // 无参构造器
  public Circle() {
  };

  public Circle(T x, T y, E r) {
    this.x = x;
    this.y = y;
    this.r = r;
  };

  // 泛型方法
  // 修饰符 <泛型类型> 返回值类型 方法名（形式参数列表）{
  // 方法体
  // }
  // 泛型方法在使用时系统自动识别泛型类型，无需指定
  public <F> void display(F f) {
    System.out.println("泛型方法display返回f：" + f);
  }
  // 泛型方法的泛型名T尽量不要和泛型类的泛型名T相同，容易产生歧义
  // public class Circle<T, E> {
  // public <T> void show(T f) {

  public static <F> void show(F f) {
    System.out.println("泛型方法show返回f：" + f);
  }

  public E getR() {
    return r;
  }

  public void setR(E r) {
    this.r = r;
  }

  @Override
  public String toString() {
    return "Circle x=" + x + ",y=" + y + ",r=" + r;
  }

}